package com.upbos.upm.entity;

import com.upbos.data.persistence.annotation.Column;
import com.upbos.data.persistence.annotation.Id;
import com.upbos.data.persistence.annotation.IdType;
import com.upbos.data.persistence.annotation.Table;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@Table("upm_dept")
public class Dept implements Serializable {

    /**
     * 部门Id
     */
    @Id(idType = IdType.AUTO)
    private String id;

    /**
     * 部门编码
     */
    @Column("code_")
    private String code;

    /**
     * 部门名称
     */
    @Column
    private String name;
    /**
     * 描述
     */
    @Column
    private String remark;
    /**
     * 层级代码
     */
    @Column("cascade_")
    private String cascade;

    /**
     * 部门类型
     */
    @Column
    private String type;

    /**
     * 部门类型名称
     */
    private String typeName;

    /**
     * 上级部门代码
     */
    @Column("parent_id")
    private String parentId;

    /**
     * 所属机构Id
     */
    @Column("org_id")
    private String orgId;

    /**
     * 负责人id
     */
    private String userId;

    /**
     * 负责人姓名
     */
    @Column("user_name")
    private String userName;
    /**
     * 排序号
     */
    @Column
    private Integer idx;

    /**
     * 部门状态
     */
    @Column
    private Boolean status;

    /**
     * 是否固定
     */
    private Boolean isFixed;

    /**
     * 是否叶子
     */
    @Column("is_leaf")
    private Boolean isLeaf;

    /**
     * 下级部门
     */
    private List<Dept> children;
}
